def quick_sort(arr):
    # 如果数组为空或只有一个元素，则直接返回
    if len(arr) <= 1:
        return arr
    else:
        # 选择一个基准元素（pivot），这里选择数组的第一个元素
        pivot = arr[0]
        # 小于基准元素的数组部分
        less_than_pivot = [x for x in arr[1:] if x <= pivot]
        # 大于基准元素的数组部分
        greater_than_pivot = [x for x in arr[1:] if x > pivot]
        # 递归地对小于和大于基准元素的数组部分进行排序，并将结果合并
        return quick_sort(less_than_pivot) + [pivot] + quick_sort(greater_than_pivot)

# 测试快速排序算法
if __name__ == "__main__":
    test_array = [3, 6, 8, 10, 1, 2, 1]
    print("原始数组:", test_array)
    sorted_array = quick_sort(test_array)
    print("排序后数组:", sorted_array)